package com.penghaisoft.microwms.materialhand.web.outwarehouse.service;

import java.util.List;

import com.penghaisoft.microwms.common.data.model.RawRequisition;
import com.penghaisoft.microwms.common.data.model.RawRequisitionSn;
import com.penghaisoft.microwms.common.dto.Resp;
import com.penghaisoft.microwms.common.wms.model.RawStorageSn;

/** 
* @ClassName: IMaterialRequisitionService 
* @Description: 原材料返修出库任务
* @author jzh
* @date 2018年6月20日 下午4:43:34  
*/
public interface IMaterialRequisitionService {

	List<RawRequisition> queryRawRequisition(RawRequisition rawRequisition);

	/** 
	* @Title: queryRequisitionDetail 
	* @Description: 需求数量大于实际数量，status不等于2 
	* @param @param rawRequisition
	* @param @return  参数说明 
	* @return List<RawRequisition>    返回类型
	* @author jzh 
	* @throws 
	*/
	List<RawRequisition> queryRequisitionDetail(RawRequisition rawRequisition);

	/** 
	* @Title: queryRawStorageSn 
	* @Description: 根据条码查库存
	* @param @param rawStorageSn
	* @param @return  参数说明 
	* @return List<RawStorageSn>    返回类型
	* @author jzh 
	* @throws 
	*/
	List<RawStorageSn> queryRawStorageSn(RawStorageSn rawStorageSn);

	/** 
	* @Title: updateScanRequisition 
	* @Description:更改任务已分配数量为新数量，发货中 并且 新增记录,更改条码状态为已出库（保证事物） 
	* @param @param tmpRequisition
	* @param @param rawRequisitionSn
	* @param @param newRawStorageSn
	* @param @return  参数说明 
	* @return Resp    返回类型
	* @author jzh 
	* @throws 
	*/
	Resp updateScanRequisition(RawRequisition tmpRequisition, RawRequisitionSn rawRequisitionSn,
			RawStorageSn newRawStorageSn);

	/** 
	* @Title: updateRequisition 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param rawRequisition
	* @param @return  参数说明 
	* @return Resp    返回类型
	* @author jzh 
	* @throws 
	*/
	Resp updateRequisition(RawRequisition rawRequisition);
	
	/** 
	 * @Title queryMesNormalList
	 * @Description 查询返回给MES的【普通】的领料数据
	 * @author luoteng
	 * @date 2018年6月26日:上午10:44:35
	 * @param rawRequisitionSn
	 * @return List<RawRequisitionSn>
	 */
	List<RawRequisitionSn> queryMesNormalList(RawRequisitionSn rawRequisitionSn);
	
	/** 
	 * @Title queryMesRepairList
	 * @Description 查询返回给MES的【返修】的领料数据
	 * @author luoteng
	 * @date 2018年6月26日:下午2:31:58
	 * @param rawRequisitionSn
	 * @return List<RawRequisitionSn>
	 */
	List<RawRequisitionSn> queryMesRepairList(RawRequisitionSn rawRequisitionSn);

	/** 
	* @Title: queryRequisitionNot2 
	* @Description: status不等于2
	* @param @param rawRequisition
	* @param @return  参数说明 
	* @return List<RawRequisition>    返回类型
	* @author jzh 
	* @throws 
	*/
	List<RawRequisition> queryRequisitionNot2(RawRequisition rawRequisition);
	
	/** 
	 * @Title updateMesStatus
	 * @Description 更新 是否上传mes的状态
	 * @author luoteng
	 * @date 2018年6月26日:下午2:31:58
	 * @param rawRequisitionSn
	 * @return List<RawRequisitionSn>
	 */
	Resp updateMesStatus(List<RawRequisitionSn> list, String loginName);
}
